如同各個語言,elixir有整數,並且在不同的前綴下被視為不同進位的整數
iex(1)> 24
24
iex(2)> 0b11000
24
iex(3)> 0o30
24
iex(4)> 0x18
24
浮點數
iex(1)> 0.24
0.24
iex(2)> 2.4e-5
2.4e-5
字串
在elixir中,字串強制以雙引號包裹,<>可以對字串進行串接,使用#{}也可以像其他語言一樣在字串中插入變數。
iex(1)> "Hello world"
"Hello world"
iex(2)> "Hello" <> " world"
"Hello world"
iex(3)> str = "world"
"world"
iex(4)> "Hello #{str}"
"Hello world"
布林值
iex(1)> true
true
iex(2)> false
false
Atoms
atoms是跟ruby中的Symbols相同的概念,可以想像成他是一種類似字串的東西,但他不是一個字串,他有著比字串更好的效率,原因是因為atom在運行時,會被匹配到唯一的一個整數上,所以在進行匹配時會有更快的速度,因為他所需要做的就是比對兩個整數的值。
iex(1)> :foo
:foo
iex(2)> :foo == :foo
true
並且true false nil在elixir中其實也是atoms
iex(1)> true == :true
true
iex(2)> false == :false
true
iex(3)> nil == :nil
true
iex(4)> is_boolean(:true)
true
Range
range代表的是一個範圍,即兩個數之間的整數序列,且可以是遞減或遞增。
iex(1)> 1..3
1..3
iex(2)> range = 5..3
5..3
今天先介紹到這樣,明天我們來介紹elixir裡的collection資料型態。